package com.integral.biz;

import java.util.List;

import com.integral.entity.User;
import com.integral.entity.UserInfo;
import com.integral.vo.UserVo;

/**
 * @Description: 用户表BIZ接口类
 * @author zhaofan
 * @date 2018年05月08日 上午01:01:17
 */
public interface IUserBiz {
	
	/**
	 * @Description: 新增用户表
	 * @param user
	 * @return 受影响行数
	 * @author zhaofan
	 * @date 2018年05月08日 上午01:01:17
	 */
	public int addUser(User user);
	
	/**
	 * @Description: 修改用户表
	 * @param user 用户表
	 * @return 受影响行数
	 * @author zhaofan
	 * @date 2018年05月08日 上午01:01:17
	 */
	public int updateUser(User user);
	
	/**
	 * @Description: 删除用户表
	 * @param id 主键
	 * @return 受影响行数
	 * @author zhaofan
	 * @date 2018年05月08日 上午01:01:17
	 */
	public int deleteUser(Long id);
	
	/**
	 * @Description: 根据ID查询用户表
	 * @param id 主键
	 * @return 用户表
	 * @author zhaofan
	 * @date 2018年05月08日 上午01:01:17
	 */
	public User findByCode(String userCode);
	
	/**
	 * 用户列表查询
	 * @param userVo
	 * @return
	 * @author zhaofan
	 * @date 2018年05月11日 上午02:14:36
	 */
	public List<UserVo> findUser(UserVo userVo);
	
	/**
	 * 获取总记录数
	 * @param userVo
	 * @return
	 */
	public Long findUserCount(UserVo userVo);
	
	/**
	 * 根据用户唯一标识查询用户
	 * @param userOpenid
	 * @return
	 */
	public UserVo findByUserOpenid(String userOpenid);
	
	/**
	 * 设置用户
	 * 若用户存在，则返回用户信息。
	 * 若用户不存在，则新增用户(若携带上级用户编码，则设置上级用户)
	 * @param userOpenid
	 */
	public User findUserAddUser(String userOpenid,String userName,String userSuperiorCode);
	
	/**
	 * 根据用户唯一openid修改用户类型
	 * @param user
	 * @return
	 */
	public int updateByUserType(User user);
	
	/**
	 * 根据帐号密码，查询登录用户
	 * @param userInfo
	 * @return
	 */
	public UserInfo findUserInfo(UserInfo userInfo);
	
	/**
	 * 根据用户编码修改用户手机号
	 * @param user
	 * @return
	 */
	public int updateByPhoneNum(User user);
}